# dictionary 字典 and set 集合

# 字典dict = {'name': 'Tom', 'age': 18}
# 字典和集合都是无序的集合，字典的键是唯一的，集合的元素是唯一的
# 字典的key必须是不可变对象
# 字典的key是唯一的，如果添加重复的键，后面的值会覆盖前面的值
dict = {'name': 'Tom', 'age': 18}
print(dict['name'])
#print(dict['phone']) # 字典中没有phone这个key会报错 KeyError: 'phone'，解决办法使用get()方法
print(dict.get('phone')) # get()方法，如果没有phone这个key会返回None
print(dict.get('phone', 'not found')) # get()方法，如果没有phone这个key会返回not found
print(dict.keys()) # keys()方法，返回所有key
print(dict.values()) # values()方法，返回所有value
print('phone' in dict) # in 运算符，判断key是否存在

dict = {'Tom': 18, 'Bob': 20, 'Jane': 19}
print(dict)
dict.pop('Tom') # pop()方法，删除指定key的元素
print(dict)

# 集合set = {'Tom', 'Bob', 'Jane'}
# 集合是无序的，集合的元素是唯一的
# 集合的元素必须是不可变对象
s = {'Tom', 'Bob', 'Jane'}
print(len(s)) # 获取集合长度
s = set(['Bob', 'Tom', 'Jane', 'Jane','Tom']) # list-->set，使用list，创建集合，自动删除重复元素
print(s)
s.add('Adam') # add()方法，添加元素
print(s)
s.remove('Tom') # remove()方法，删除元素
print(s)

s2 = {'Lily','Jarry','Tom','Bob'}
print(s & s2) # 交集
print(s | s2) # 并集
